Processing multidimensional signals

ABSTRACT

A computer-implemented method, computing system and non-transitory computer readable medium having computer readable code thereon for processing a dataset of multidimensional signals captured from points in a physical space. The computer-implemented method includes using a computing system, determining, for each of the points, a plurality of spatially neighbouring points in the physical space; and using the computing system, creating a modified signal for each point based on the signals of its respective spatially neighbouring points.

FIELD OF THE INVENTION

The following relates generally to signal processing, and more particularly to a computer-implemented method, a computing system, and a computer program product for processing multidimensional signals captured from physical space.

BACKGROUND OF THE INVENTION

Raw multidimensional signals may be captured from physical space by various devices, using various techniques, and for various uses. In the field of data processing, it is often a goal to process raw multidimensional signals in order to obtain representations of the signals that are more useful than when in raw form, for subsequent processing and other operations such as classification, visualization and the like.

Various techniques for processing multidimensional signals in an attempt to obtain more useful representations through reconstruction, for example by way of dimensionality reduction, include the well-understood principle component analysis (PCA) and multidimensional scaling (MDS) techniques. Each of PCA and MDS are eigenvector techniques that are useful for modeling linear variabilities in raw multidimensional data.

For modelling nonlinear variabilities in raw multidimensional data, the unsupervised technique of local linear embedding (LLE) has been found to be useful. LLE was described by Sam Roweis and Lawrence Saul in their paper entitled “Nonlinear dimensionality reduction by locally linear embedding” (Science, v. 290 no. 5500, December 2000, pp. 2323-2326). According to this technique, nonlinear manifolds in the raw multidimensional data may first be modeled as locally-linear patches, which patches are then preserved in the reconstruction such that neighbours remain neighbours after reconstruction. A technique for dealing with what can be highly nonlinear embeddings resulting from LLE was subsequent described by Roweis and Saul in their paper entitled “Think Globally, Fit Locally: Unsupervised Learning of Nonlinear Manifolds” (Technical Report MS CIS-o2-18, University of Pennsylvania Scholarly Commons, 2003).

An example of a raw multidimensional signal is a blood oxygenation level dependent (BOLD) signal captured from each of multiple points within physical space (in this example a three-dimensional volume) using functional magnetic resonance imaging (fMRI). The physical space may contain the brain of a subject, and the fMRI devices use paramagnetic deoxyhemoglobin within the brain as a BOLD contrast. That is, a BOLD intensity signal for a given point in the physical space can represents the oxygenation over time of the blood at that point, which in turn can indicate the oxygen-dependent neuronal activity at that point. Being able to capture data indicating neuronal activity at a given point in a brain can be very useful for studying brain activity and diseases.

It is known to process fMRI BOLD signal data using LLE. For

in “Dimensionality Reduction of fMRI Time Series Data Using Locally Linear Embedding” (Magnetic Resonance Material Physics, Mar. 13, 2010, Volume 23; Pages 432-338) disclose that, for non-linear example data, LLE, unlike PCA, can separate non-linearly modulated sources in a low-dimensional subspace, and that LLE can also perform better than non-linear PCA.

However, the above-referenced technique for processing fMRI BOLD signal data using LLE undertakes a neighbourhood selection step that essentially establishes locality based on similarities between fMRI signals across the dataset. Because of this, reconstructions of different patients' fMRI datasets could use fMRI signals from non-corresponding spatial points in the physical space (i.e. the three-dimensional volumes containing the respective brains) being assessed.

With fMRI signals, since the spatial information is lost during the reconstruction, hemodynamic activity at a spatial position within one subject's reconstruction cannot validly be compared to hemodynamic activity at the same spatial position within another subject's reconstruction. Because of this, there remain difficulties with identifying differences in mental activity between the subjects, and with conducting classification or other subsequent operations based on the respective reconstructions.

SUMMARY OF THE INVENTION

In accordance with an aspect, there is provided a computer-implemented method for processing a dataset of multidimensional signals captured from points in a physical space, the method comprising using a computing system, determining, for each of the points, a plurality of spatially neighbouring points in the physical space; and using the computing system, creating a modified signal for each point based on the signals of its respective spatially neighbouring points.

By creating modified signals based on signals of spatially neighbouring points, the resultant modified signals can be more easily compared across subject datasets on the basis that all subjects' reconstructed signals at a given point were reconstructed on the basis of signals from the same spatially neighbouring points in the respective datasets.

In embodiments, the dataset of multidimensional signals is a dataset of functional Magnetic Resonance Imaging (fMRI) BOLD (Blood Oxygenation Level Dependent) signals.

In accordance with another aspect, there is provided a computer-implemented method for processing a dataset of multidimensional signals captured from points in a physical space, the method comprising using a computing system, determining, for each of the points, a plurality of spatially neighbouring points in the physical space; using the computing system, creating a modified signal for each point based on the signals of its respective spatially neighbouring points.

In accordance with another aspect, there is provided a non-transitory computer readable medium embodying a computer program executable on a computing system for processing a dataset of multidimensional signals captured from points in a physical spac

comprising computer program code for determining, for each of the points, a plurality of spatially neighbouring points in the physical space; and computer program code for creating a modified signal for each point based on the signals of its respective spatially neighbouring points.

In accordance with another aspect, there is provided a computing system comprising at least one processor executing instructions for processing a dataset of multidimensional signals captured from points in a physical space, the at least one processor configured therewith to determine, for each of the points, a plurality of spatially neighbouring points in the physical space; and create a modified signal for each point based on the signals of its respective spatially neighbouring points.

In accordance with another aspect, there is provided a computer-implemented method for processing a dataset of multidimensional signals captured from points in a physical space, the method comprising conducting local linear embedding on the dataset, wherein reconstruction weights for the signal at each point are established using signals at spatially neighbouring points that are within a spatial neighbourhood of the point in the physical space.

In accordance with another aspect, there is provided a computer-implemented method for processing a dataset of multidimensional signals captured from points in a physical space, the method comprising determining reconstruction weights for the signal at each point based on signals at spatially neighbouring points that are within a spatial neighbourhood of the point in the physical space; and constructing modified signals using local linear embedding based on the reconstruction weights.

In accordance with another aspect, there is provided a computing system comprising at least one processor executing instructions for processing a dataset of multidimensional signals captured from points in a physical space, the at least one processor configured therewith to conduct local linear embedding on the dataset, wherein reconstruction weights for the signal at each point are established using signals at spatially neighbouring points that are within a spatial neighbourhood of the point in the physical space.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention will now be described with reference to the appended drawings in which:

FIG. 1A is a graphical depiction of a voxel modelled as a black body in a three-dimensional Cartesian physical space, along with spatially neighbouring voxels;

FIG. 1B is a plot of the relative fMRI BOLD signal intensities of spatially neighbouring points relative to the origin representing the black body relative to its spatial neighbours;

FIG. 2 is a plot of a subset of a raw fMRI dataset and an fMRI signal reconstructed according to the invention disclosed herein;

FIG. 3 is a flowchart depicting the general steps for proc

signals, according to an embodiment;

FIG. 4 is a flowchart depicting in further detail steps for determining spatially neighbouring points within a neighbourhood in a physical space for each point;

FIG. 5 is a flowchart depicting in further detail steps for reconstructing each point's signal based on the signals of its spatially neighbouring points;

FIG. 6 is a plot of a reconstructed fMRI Z based in part on the raw fMRI signals depicted in the plot of FIG. 2; and

FIG. 7 is a schematic diagram of an aspect of the computing environment which may be used to implement one or more embodiments of the method described herein.

DETAILED DESCRIPTION

The description of the invention to follow is, for ease of understanding, made in connection with an embodiment where the dataset of multidimensional signals is a dataset of functional Magnetic Resonance Imaging (fMRI) BOLD (Blood Oxygenation Level Dependent) signals. However, it will be understood that the invention is applicable to the processing of datasets of other kinds of multidimensional signals captured from points in a physical space, such as other spatiotemporal signals, of which fMRI BOLD signals are an example.

A local interpretation of fMRI data may be expressed in terms of a BOLD signal comprising BOLD intensity values over T time points (T being greater than or equal to 1) being a T-dimensional spatial pattern observed at the spatial point in the physical space being assessed, as defined by the respective point of the voxel in the fMRI data.

A global interpretation of fMRI data may be expressed in terms of the fMRI data containing T uniformly-spaced time points, where time point tε{1, . . . , T} references a physical space that is a three-dimensional volume comprised of V=L×W×H points, or voxels (volumetric elements), having a respective BOLD intensity value. That is, each voxel is a volumetric measurement of the brain's physical mechanisms in both space and time. The measurement may be expressed as four-tuple (x, y, z, t).

The local interpretation may be employed to determine the mathematical structures of the local configurations of the fMRI data in space-time, whereas the global interpretation may be employed to perform a global optimization that conserves the mathematical structure of the local configurations. A topological space that represents the physical reality must satisfy both the local and global interpretations.

FIG. 1A is a graphical depiction of a voxel modelled as a black body in a three-dimensional Cartesian physical space, along with a number (K) of its spatially neighbouring voxels within a neighbourhood. The set containing the spatial coordinates o:

dimensional Cartesian physical space may be represented as in Equation 1, below:

X={(x,y,z):xε{1, . . . ,L},yε{1, . . . ,W},zε{1, . . . ,H}}  (1)

FIG. 1B is a plot of the relative fMRI BOLD signal intensities of spatially neighbouring points relative to the origin line at zero, representing the black body relative to its spatial neighbours.

FIG. 2 is a plot of a subset of an fMRI dataset with raw, or original, captured BOLD signal intensities of spatially neighbouring points relative to the BOLD signal intensity of a selected point, over the assessment time period. FIG. 2 also shows the reconstructed fMRI signal of the point based on the fMRI signals of these spatially neighbouring points.

FIG. 3 is a flowchart depicting the general steps in a computer-implemented method 90 for processing a dataset of multidimensional signals captured from points in a physical space, according to an embodiment where the multidimensional signals are fMRI BOLD signals captured from points in a three-dimensional volume. Initially, a dataset of the fMRI BOLD signals is captured from the three-dimensional (3D) volume being assessed (step 100). The dataset may captured and formatted according to the NIFTI (Neuroimaging Informatics Technology Initiative) file format, where each BOLD measurement at each time point t and at each spatial point (x,y,z) in the three-dimensional volume being assessed is expressed as a four-tuple (x, y, z, t). The dataset may be represented in a single file, or in a set of multiple files.

The dataset is then processed to mask out the points that do not represent points in the three-dimensional volume being assessed that are coincident with the brain. The points that are masked out will not have any fMRI BOLD signal measurements. The dataset is then further processed to determine spatially neighbouring points within a spatial neighbourhood of each point in the three-dimensional volume (step 200). With the spatially neighbouring points for each point having been determined, a modified fMRI BOLD signal for each point is then created based on the fMRI BOLD signals of its spatially neighbouring points (step 300).

FIG. 4 is a flowchart depicting in further detail steps for determining spatially neighbouring points within a neighbourhood in a 3D volume for each point (step 200). In this embodiment, the spatial dimensions of the three-dimensional volume being assessed is determined based on the dataset (step 210). In this embodiment, the dataset is processed to calculate the range of each of the spatial dimensions x, y and z. Alternatively, the spatial resolution may be specified explicitly in the dataset and simply accessed, or fixed in a given implementation.

With the spatial resolution of the dataset having been determined, a three-dimensional data structure representing a three-dimensional Cartesian space is constructed based on the determined spatial dimensions (step 220). In this embodiment, the constructed three-dimensional Cartesian space has x, y and z dimensions that are the same as the three-dimensional volume from which the dataset of multidimensional signals has been captured. However, in an alternative embodiment, the spatial resolution of the Cartesian space may be established to be different, and d

from or based on the dataset itself. That is, one does not require an actual dataset of multidimensional signals to establish spatial dimensions and resolution of the three-dimensional Cartesian space, nor to establish the spatially neighbouring points as described herein.

Spatially neighbouring points are identified for each non-zero point (i.e., the points corresponding to points in the brain in the three-dimensional volume being assessed as opposed to points outside of the brain in the three-dimensional volume) in the three-dimensional Cartesian space, by identifying those neighbouring points that are within a respective spatial neighbourhood in the three-dimensional Cartesian space from the point (step 230). In this embodiment, the spatial neighbourhood of each point is a spherical subvolume centred at the point having a predetermined radius r. In this way, the size of the spherical subvolume is defined by r, such that spatially-adjacent neighbouring points are those points within a Euclidean distance r from the point.

In particular, the point (x_(i), y_(i), z_(i)) of each voxel iε{1, . . . , V} in X is prescribed an open set N(i) of neighbour voxels at respective points (x, y, z) that are within an Euclidean distance defined by spatial radius r in the three-dimensional Cartesian coordinate system using the Pythagorean distance metric, as represented as in Equation 2, below:

N(i)={(x,y,z):√{square root over ((x−x _(i))²+(y−y _(i))²+(z−z _(i))²)}{square root over ((x−x _(i))²+(y−y _(i))²+(z−z _(i))²)}{square root over ((x−x _(i))²+(y−y _(i))²+(z−z _(i))²)}≦r}  (2)

It will be understood that the number K of neighbouring voxels for each voxel is dependent on radius r, as represented in Equation 3, below:

K=(1+2r)³−1  (3)

With the open set of N(i) of neighbours having been identified for each point, the spatial locations (x, y, z) of the neighbours for each point are stored in a neighbourhood data structure in association with the point. In this embodiment, the locations are stored in the neighbourhood data structure sorted according to their spatial proximity to the point in association with which they are stored, ie. from closest neighbour to farthest neighbour. In this embodiment, the neighbourhood data structure is a two-dimensional matrix where the first dimension represents spatial locations of points for voxels iε{1, . . . , V} and the second dimension stores as its elements the (x,y,z) locations of the spatially neighbouring points. The order is such that element one for a given point stores the location of its closest neighbouring point, element two stores the location of its second closest neighbouring point, element three stores the location of its third closest neighbouring point, and so forth until element K stores the location of its most distant neighbouring point.

The neighbourhood data structure, having been populated as described above for each spatial, non-zero point in the three-dimensional data structure representing the three-dimensional Cartesian space, is used for subsequent local linear embedding (LLE) processing on the dataset so that reconstruction weights for the signal at each point are established using signals at spatially neighbouring points that are within a spatial neighbourhood of the point in the three-dimensional volume. That is, since spatially neighbouring points are selected as de

neighbourhood selection step for LLE is required in order to output a reconstructed dataset that may reveal underlying patterns that may be useful during subsequent processing, clinical diagnosis and so forth.

Each subject's dataset of multidimensional signals (in this embodiment fMRI signals) may be represented as a four-dimensional array X, as represented in Equation 4, below:

Xε

^(L×W×H×T)  (4)

X has V=LWH T-dimensional fMRI signal waveforms represented as in Equation 5, below:

x _(i)ε

^(T)  (5)

for:

-   -   i=1, . . . , V

The processing is conducted on the assumption that a d-dimensional reconstruction z exists for every point's signal waveform for every subject's dataset. Such a reconstruction z for every voxel waveform x may be represented as in Equations 6 and 7, below:

zε

^(d)  (6)

xε

^(T)  (7)

The implementation of LLE, according to this embodiment, reconstructs X by first linearizing the spatial indices of the dataset to produce a two-dimensional array X, as represented in Equation 8, below, and ultimately to re-shape a resulting two-dimensional reconstruction array Z as represented in Equation 9, below, into a four-dimensional array as represented in Equation 10, below:

Xε

^(V×T)  (8)

Zε

^(B×d)  (9)

Zε

^(L×W×H×d)  (10)

According to this embodiment, LLE reconstructs X by characterizing every voxel as a black body. This is done by undertaking a process that seeks to minimize the reconstruction cost of its fMRI signal waveform x_(i) in terms of its spatially-adjacent neighbours. This minimization may be represented as in Equations 11 and 12, below:

$\begin{matrix} {\min {{x_{i} - {\sum\limits_{j \in {N{(i)}}}{w_{i,j}x_{j}}}}}_{2}^{2}} & (11) \\ {{such}\mspace{14mu} {{that}:}} & \; \\ {{\sum\limits_{j \in {N{(i)}}}w_{i,j}} = 1} & (12) \end{matrix}$

As set forth above, N(i) is the open set of spatial neighbours,

are the reconstruction weights for the K spatial neighbours that reflect the spatial pattern of the absorbed electromagnetic radiation at the spatial location of voxel i.

FIG. 5 is a flowchart depicting in further detail steps for, with the neighbourhood data structure having been populated, creating a modified signal for each point based on the signals of respective spatially neighbouring points (step 300), according to this embodiment. The dataset and the neighbourhood data structure are received (step 310) and a first non-zero point is selected for processing (step 320). The covariance between the signal of each spatially neighbouring point, less the signal of the selected point, and the signal of the selected point, is then computed (step 330). In particular, to determine the black body at the selected point, the signal of the point is first subtracted from the signals of its neighbours jεN(i). This reflects the intuition that the electromagnetic radiation is absorbed at this point, and establishes an origin, or axis for the point, as depicted by the zero line in FIG. 1B.

A local Hilbert space C_(i) is then computed as represented in Equation 13, below:

C _(i)=[(x _(j) −x _(i)), . . . (x _(j+k) −x _(i))]^(T)[(x _(j) −x _(i)), . . . (x _(j+k) −x _(i))]+

_(K)  (13)

In Equation 13,

_(K) is a non-negative regularization term that conditions the Hilbert space C_(i) to be positive definite. That is, this term simply adds a positive multiple down the diagonal of the matrix C_(i). Based on C_(i), a reconstruction weight for each spatially neighbouring point j is computed (step 340) by finding the unique minimum norm solution to the constrained local least squares problem that is defined by Equation 14, below:

C _(i) w _(i)=1_(K)  (14)

where:

-   -   1_(K)εR^(K) is a vector of ones.

Because C_(i) is a square-integrable space (known as a Lebesgue space or l²), defined on a Cartesian space with the Pythagorean distance metric, the reconstruction weights w_(i) are the resulting (local) Lebesgue measures containing the shift, rotation and translation-invariant geometric structure of the spatially-local contours of the space-filling curve that represents the local electric charge over time of selected point i. The constraint defined in Equation 14 ensures that the area between the selected point and the contour is 1 in each of the |N(i)| directions. The reconstruction weights w_(i) are stored in association with the selected point i (step 350).

In the event that it is determined that there are further (non-zero) spatial points to process (step 360), another spatial point is selected (step 370) and the process continues from step 330 with the newly-selected spatial point. On the other hand, should it be determined at step 360 that there are no further spatial points to process as has been described above, a modified signal for each spatial point is computed based on its respective reconstruction weights (step 380).

During computing of modified signals based on respective

modified signal for all points is computed using a constrained global least squares optimization based on the reconstruction weights, wherein the modified signals have unit covariance.

More particularly, the reconstruction weights w are used in a global optimization based on the Gauss Principle of Least Constraint, to calculate manifolds z_(i), . . . z_(V), as represented in Equations 15 and 16, below:

$\begin{matrix} {\min\limits_{z = {\lbrack{z_{1},{\ldots \mspace{14mu} z_{V}}}\rbrack}}{{z_{i} - {\sum\limits_{j \in {N{(i)}}}{w_{i,j}z_{j}}}}}_{2}^{2}} & (15) \\ {{such}\mspace{14mu} {{that}:}} & \; \\ {{ZZ}^{T} = I} & (16) \end{matrix}$

In Equations 15 and 16, ZεR^(V×d).

More particularly, a sparse matrix WεR^(V×V) is constructed containing V voxels' K reconstruction weights. It is the case that W_(i,j)←w_(i,j)≠0

jεN(i). Since neighbouring points are determined by Pythagorean distance, jεN(i)

iεN(j). The local linear embedding is done based on matrix W and not on the original inputs. As such, d-dimensional manifolds are constructed by computing the eigenvectors of the distance, or cost, matrix M as represented by Equation 17, below:

M=(I−W)^(T)(I−W)  (17)

It will be understood that, since no voxel is a neighbour of itself, matrix W will have zeroes down the diagonal. Subtracting W from the identity matrix I enforces the constraint that the weight vectors must sum to one. Each element of cost matrix M may be represented as in Equation 18, below:

M _(i,j)=δ_(i,j) −w _(i,j) −w _(j,i) +Σw _(i,k) w _(j,k)  (18)

where:

-   -   δ_(i,j)=1         i=j and is otherwise 0

Equation 18 and its constraint illustrates that the cost matrix M is also an adjacency matrix, where the off-diagonal elements characterize a highly non-linear relationship between voxels, and the diagonal elements enforce the constraint that the weights must sum to 1.

It is the case that the cost matrix M is sparse, symmetric and positive semidefinite. As such, it admits the eigen decomposition as represented in Equation 19, below:

M=ZΛZ ^(T)  (19)

In Equation 19, ΛεR^((d+1)×(d+1)) is the diagonal matrix containing the d+1 smallest eigenvalues of M, and ZεR^(V×(d+1)) are the corresponding eigenvectors. The (d+1) eigenvector is the unit vector with equal components, which is discarded to enforce the constraint that the space-time manifolds have mean zero.

In order to avoid degenerate solutions, the local linear eml

manifolds be centered about the origin (see, for example, FIG. 1B) in both space and time, and that the manifolds have unit covariance. Centering the manifolds about the origin ensures that they are of the same scale. This is, to a degree, similar to what is known as BOLD-signal normalization, where the unit covariance constraint imposes the requirement that the reconstruction errors of the extracted manifolds are measured on the same scale.

FIG. 6 is a plot of a reconstructed fMRI Z based in part on the raw fMRI signals depicted in the plot of FIG. 2. As can be seen, the mathematical structures in the patterns of FIG. 2 are preserved in FIG. 6. That is, the hemodynamic patterns in the fMRI BOLD signals depicted in FIG. 2 are preserved during the reconstruction.

In this embodiment, process 90 is executed on a computing system 1000 such as that shown in FIG. 7. In an embodiment involving fMRI datasets, the computing system 1000 may be incorporated into an fMRI machine or a downstream processing structure that receives a dataset of fMRI signals in NIFTI or other suitable file format and can process the received dataset accordingly.

In this embodiment, computing system 1000 includes a bus 1010 or other communication mechanism for communicating information, and a processor 1018 coupled with the bus 1010 for processing the information. The computing system 1000 also includes a main memory 1004, such as a random access memory (RAM) or other dynamic storage device (e.g., dynamic RAM (DRAM), static RAM (SRAM), and synchronous DRAM (SDRAM)), coupled to the bus 1010 for storing information and instructions to be executed by processor 1018. In addition, the main memory 1004 may be used for storing temporary variables or other intermediate information during the execution of instructions by the processor 1018. Processor 1018 may include memory structures such as registers for storing such temporary variables or other intermediate information during execution of instructions. The computing system 1000 further includes a read only memory (ROM) 1006 or other static storage device (e.g., programmable ROM (PROM), erasable PROM (EPROM), and electrically erasable PROM (EEPROM)) coupled to the bus 1010 for storing static information and instructions for the processor 1018.

The computing system 1000 also includes a disk controller 1008 coupled to the bus 1010 to control one or more storage devices for storing information and instructions, such as a magnetic hard disk 1022, and a removable media drive 1024 (e.g., floppy disk drive, read-only compact disc drive, read/write compact disc drive, compact disc jukebox, tape drive, and removable magneto-optical drive). The storage devices may be added to the computing system 1000 using an appropriate device interface (e.g., small computing system interface (SCSI), integrated device electronics (IDE), enhanced-IDE (E-IDE), direct memory access (DMA), or ultra-DMA).

The computing system 1000 may also include special purpose logic devices (e.g., application specific integrated circuits (ASICs)) or configurable logic devices (e.g., simple programmable logic devices (SPLDs), complex programmable logic de

programmable gate arrays (FPGAs)).

The computing system 1000 may also include a display controller 1002 coupled to the bus 1010 to control a display 1012, such as a liquid crystal display (LCD) screen, for displaying information to a computer user. The computing system 1000 includes input devices, such as a keyboard 1014 and a pointing device 1016, for interacting with a computer user and providing information to the processor 1018. The pointing device 1016, for example, may be a mouse, a trackball, or a pointing stick for communicating direction information and command selections to the processor 1018 and for controlling cursor movement on the display 1012. In addition, a printer may provide printed listings of data stored and/or generated by the computing system 1000.

The computing system 1000 performs a portion or all of the processing steps of the invention in response to the processor 1018 executing one or more sequences of one or more instructions contained in a memory, such as the main memory 1004. Such instructions may be read into the main memory 1004 from another computer readable medium, such as a hard disk 1022 or a removable media drive 1024. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 1004. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software.

As stated above, the computing system 1000 includes at least one computer readable medium or memory for holding instructions programmed according to the teachings of the invention and for containing data structures, tables, records, or other data described herein. Examples of computer readable media are compact discs, hard disks, floppy disks, tape, magneto-optical disks, PROMs (EPROM, EEPROM, flash EPROM), DRAM, SRAM, SDRAM, or any other magnetic medium, compact discs (e.g., CD-ROM), or any other optical medium, punch cards, paper tape, or other physical medium with patterns of holes, a carrier wave (described below), or any other medium from which a computer can read.

Stored on any one or on a combination of computer readable media, the present invention includes software for controlling the computing system 1000, for driving a device or devices for implementing the invention, and for enabling the computing system 1000 to interact with a human user (e.g., print production personnel). Such software may include, but is not limited to, device drivers, operating systems, development tools, and applications software. Such computer readable media further includes the computer program product of the present invention for performing all or a portion (if processing is distributed) of the processing performed in implementing the invention.

The computer code devices of the present invention may be any interpretable or executable code mechanism, including but not limited to scripts, interpretable programs, dynamic link libraries (DLLs), Java classes, and complete executable programs. Moreov

of the present invention may be distributed for better performance, reliability, and/or cost.

A computer readable medium providing instructions to a processor 1018 may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical, magnetic disks, and magneto-optical disks, such as the hard disk 1022 or the removable media drive 1024. Volatile media includes dynamic memory, such as the main memory 1004. Transmission media includes coaxial cables, copper wire and fibre optics, including the wires that make up the bus 1010. Transmission media also may also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.

Various forms of computer readable media may be involved in carrying out one or more sequences of one or more instructions to processor 1018 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions for implementing all or a portion of the present invention remotely into a dynamic memory and send the instructions over a telephone line using a modem. A modem local to the computing system 1000 may receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to the bus 1010 can receive the data carried in the infrared signal and place the data on the bus 1010. The bus 1010 carries the data to the main memory 1004, from which the processor 1018 retrieves and executes the instructions. The instructions received by the main memory 1004 may optionally be stored on storage device 1022 or 1024 either before or after execution by processor 1018.

The computing system 1000 also includes a communication interface 1020 coupled to the bus 1010. The communication interface 1020 provides a two-way data communication coupling to a network link that is connected to, for example, a local area network (LAN) 1500, or to another communications network 2000 such as the Internet. For example, the communication interface 1020 may be a network interface card to attach to any packet switched LAN. As another example, the communication interface 1020 may be an asymmetrical digital subscriber line (ADSL) card, an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of communications line. Wireless links may also be implemented. In any such implementation, the communication interface 1020 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.

The network link typically provides data communication through one or more networks to other data devices. For example, the network link may provide a connection to another computer through a local network 1500 (e.g., a LAN) or through equipment operated by a service provider, which provides communication services through a communications network 2000. The local network 1500 and the communications network 2000 use, for example, electrical, electromagnetic, or optical signals that carry digital data streams, and the associated physical layer (

cable, optical fibre, etc). The signals through the various networks and the signals on the network link and through the communication interface 1020, which carry the digital data to and from the computing system 1000 may be implemented in baseband signals, or carrier wave based signals. The baseband signals convey the digital data as unmodulated electrical pulses that are descriptive of a stream of digital data bits, where the term “bits” is to be construed broadly to mean symbol, where each symbol conveys at least one or more information bits. The digital data may also be used to modulate a carrier wave, such as with amplitude, phase and/or frequency shift keyed signals that are propagated over a conductive media, or transmitted as electromagnetic waves through a propagation medium. Thus, the digital data may be sent as unmodulated baseband data through a “wired” communication channel and/or sent within a predetermined frequency band, different than baseband, by modulating a carrier wave. The computing system 1000 can transmit and receive data, including program code, through the network(s) 1500 and 2000, the network link and the communication interface 1020. Moreover, the network link may provide a connection through a LAN 1500 to a mobile device 1300 such as a personal digital assistant (PDA) laptop computer, or cellular telephone.

Alternative configurations of computing system 1000, such as those that are not interacted with directly by a human user through a graphical or text user interface, may be used to implement process 90.

Although embodiments have been described with reference to the drawings, those of skill in the art will appreciate that variations and modifications may be made without departing from the spirit, scope and purpose of the invention as defined by the appended claims.

For example, while the invention has been explained in detail using fMRI BOLD signals as multidimensional signals captured from points in a physical space that is a three-dimensional volume, the invention may be applicable to other kinds of multidimensional signals captured from points in other physical spaces by various detectors. 

1. A computer-implemented method for processing a dataset of multidimensional signals captured from points in a physical space, the method comprising: using a computing system, determining, for each of the points, a plurality of spatially neighbouring points in the physical space; and using the computing system, creating a modified signal for each point based on the signals of its respective spatially neighbouring points.
 2. The computer-implemented method of claim 1, wherein the dataset of multidimensional signals is a dataset of functional Magnetic Resonance Imaging (fMRI) BOLD (Blood Oxygenation Level Dependent) signals.
 3. The computer-implemented method of claim 1, wherein the determining step comprises: using the computing system, creating a data structure having spatial dimensions based on the spatial dimensions of the dataset; using the computing system, identifying, for each point in the data structure, spatially neighbouring points that are within a respective spatial neighbourhood in the data structure; and using the computing system, storing, in association with each point in the data structure, the coordinates of respective spatially neighbouring points.
 4. The computer-implemented method of claim 3, wherein the data structure has a spatial resolution that is the same as the spatial resolution of the dataset.
 5. The computer-implemented method of claim 3, wherein the spatial neighbourhood of each point is a spherical subvolume centered at the point and having a predetermined radius.
 6. The computer-implemented method of claim 3, wherein the storing step comprises storing, in association with each point in the data structure, the coordinates of respective neighbouring points in an order corresponding to their respective spatial distance from the point.
 7. The computer-implemented method of claim 1, wherein the creating step comprises: for each point: computing a respective covariance between the signal of each spatially neighbouring point, less the signal of the point, and the signal of the point; computing a reconstruction weight for each spatially neighbouring point based on a constrained local least-squares optimization of the covariances; and storing the reconstruction weights in association with the point; and computing a modified signal for each point based on the reconstruction weights.
 8. The computer-implemented method of claim 7, wherein computing a modified signal for each point based on the reconstruction weights comprises: computing a modified signal for all points using a constrained global least squares optimization based on the reconstruction weights, wherein the modified signals have unit covariance.
 9. The computer-implemented method of claim 1, wherein the creating step comprises conducting local linear embedding on the basis of the signals of the plurality of spatially neighbouring points.
 10. A non-transitory computer readable medium embodying a computer program executable on a computing system for processing a dataset of multidimensional signals captured from points in a physical space, the computer program comprising: computer program code for determining, for each of the points, a plurality of spatially neighbouring points in the physical space; and computer program code for creating a modified signal for each point based on the signals of its respective spatially neighbouring points.
 11. The non-transitory computer readable medium of claim 10, wherein the dataset of multidimensional signals is a dataset of functional Magnetic Resonance Imaging (fMRI) BOLD (Blood Oxygenation Level Dependent) signals.
 12. The non-transitory computer readable medium of claim 10, wherein the computer program code for determining comprises: computer program code for creating a data structure having spatial dimensions based on the spatial dimensions of the dataset; computer program code for identifying, for each point in the data structure, spatially neighbouring points that are within a respective spatial neighbourhood in the data structure; and computer program code for storing, in association with each point in the data structure, the coordinates of respective spatially neighbouring points.
 13. The non-transitory computer-readable medium of claim 12, wherein the data structure has a spatial resolution that is the same as the spatial resolution of the dataset.
 14. The non-transitory computer-readable medium of claim 12, wherein the spatial neighbourhood of each point is a spherical subvolume centered at the point and having a predetermined radius.
 15. The non-transitory computer-readable medium of claim 12, wherein the computer program code for storing comprises computer program code for storing, in association with each point in the data structure, the coordinates of respective neighbouring points in an order corresponding to their respective spatial distance from the point.
 16. The non-transitory computer-readable medium of claim 10, wherein the computer program code for creating comprises: computer program code for, for each point: computing a respective covariance between the signal of each spatially neighbouring point, less the signal of the point, and the signal of the point; computing a reconstruction weight for each spatially neighbouring point based on a constrained local least-squares optimization of the covariances; and storing the reconstruction weights in association with the point; and computer program code for computing a modified signal for each point based on the reconstruction weights.
 17. The non-transitory computer-readable medium of claim 16, wherein the computer program code for computing a modified signal for each point based on the reconstruction weights comprises: computer program code for computing a modified signal for all points using a constrained global least squares optimization based on the reconstruction weights, wherein the modified signals have unit covariance.
 18. The non-transitory computer-readable medium of claim 10, wherein the computer program code for creating comprises: computer program code for conducting local linear embedding on the basis of the signals of the plurality of spatially neighbouring points.
 19. A computing system comprising at least one processor executing instructions for processing a dataset of multidimensional signals captured from points in a physical space, the at least one processor configured therewith to: determine, for each of the points, a plurality of spatially neighbouring points in the physical space; and create a modified signal for each point based on the signals of its respective spatially neighbouring points.
 20. The computing system of claim 19, wherein the dataset of multidimensional signals is a dataset of functional Magnetic Resonance Imaging (fMRI) BOLD (Blood Oxygenation Level Dependent) signals.
 21. The computing system of claim 19, wherein the at least one processor is configured therewith to, during the determining: create a data structure having spatial dimensions based on the spatial dimensions of the dataset; identify, for each point in the data structure, spatially neighbouring points that are within a respective spatial neighbourhood in the data structure; and store, in association with each point in the data structure, the coordinates of respective spatially neighbouring points.
 22. The computing system of claim 21, wherein the data structure has a spatial resolution that is the same as the spatial resolution of the dataset.
 23. The computing system of claim 21, wherein the spatial neighbourhood of each point is a spherical subvolume centered at the point and having a predetermined radius.
 24. The computing system of claim 21, wherein the at least one processor is configured therewith to, during the storing, store in association with each point in the data structure, the coordinates of respective neighbouring points in an order corresponding to their respective spatial distance from the point.
 25. The computing system of claim 19, wherein the at least one processor is configured therewith to, during the creating: for each point: compute a respective covariance between the signal of each spatially neighbouring point, less the signal of the point, and the signal of the point; compute a reconstruction weight for each spatially neighbouring point based on a constrained local least-squares optimization of the covariances; and store the reconstruction weights in association with the point; and compute a modified signal for each point based on the reconstruction weights.
 26. The computing system of claim 25, wherein the at least one processor is configured therewith to, during computing a modified signal for each point based on the reconstruction weights: compute a modified signal for all points using a constrained global least squares optimization based on the reconstruction weights, wherein the modified signals have unit covariance.
 27. The computing system of claim 19, wherein the at least one processor is configured therewith to, during the creating, conduct local linear embedding on the basis of the signals of the plurality of spatially neighbouring points. 28-33. (canceled)
 34. The computer-implemented method of claim 1, wherein the physical space is a three-dimensional volume.
 35. The non-transitory computer-readable medium of claim 10, wherein the physical space is a three-dimensional volume.
 36. The computing system of claim 19, wherein the physical space is a three-dimensional volume. 37-39. (canceled) 